import requests
import picture_crawler as pc


# 调用picture_crawler的run方法，获取英雄详情URL的列表
def get_request_list(headers):

    url = "https://game.gtimg.cn/images/lol/act/img/js/heroList/hero_list.js?ts=2816006"

    detail_list = pc.run(url, headers)

    return detail_list


# 解析英雄详情，得到每个英雄对应的所有皮肤main_img
def parse_detail(detail_list, headers):
    pic_url_list = []  # 用来装所有图片的所有URL
    try:
        # 遍历所有英雄的详情
        for detail_url in detail_list:
            # 对详情URL发请求，获得响应回来的详情json数据
            resp = requests.get(url=detail_url, headers=headers)
            # 解析出详情JSON数据中的皮肤名称与皮肤图片URL
            for skin in resp.json()['skins']:
                dct = {}
                main_img = skin['mainImg']
                # 如果存在图片URL就装在空字典里面
                if main_img:  
                    name = skin['name']
                    dct['name'] = name
                    dct['main_img'] = main_img
                # 如果没有图片URL，则就是一个空字典，这样的空字典我们不要
                # 只把有图片URL的字典放在pic_url_list里
                if dct:
                    pic_url_list.append(dct)  # 把图片的URL塞进列表里

        return pic_url_list  # 返回这个带有所有图片URL的列表
    except:
        pass


# 主函数
def main():
    headers = {
        'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36 Edg/114.0.1823.43',
    }
    detail_list = get_request_list(headers)
    pic_url_list = parse_detail(detail_list, headers)


# 供其他模块运行的函数，主要功能就是做各种处理，最终的到带有所有皮肤图片的URL列表
def run():
    headers = {
        'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36 Edg/114.0.1823.43',
    }
    detail_list = get_request_list(headers)
    pic_url_list = parse_detail(detail_list, headers)
    return pic_url_list


if __name__ == '__main__':
    main()
